﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Almoxarifado.Models;
using Castle.MonoRail.Framework;
using NHibernate.Expression;
using System.Collections;

namespace Almoxarifado.Controllers
{
    public class RecursoController : BaseController
    {
        public void listar()
        { 
            PropertyBag["Recursos"] = Recurso.getRecursos();
            PropertyBag["Categorias"] = CategoriaRecurso.getCategorias();
        }

        public void listarCategorias()
        {
            PropertyBag["Categorias"] = CategoriaRecurso.getCategorias();
        }
        public void listarRecursos(int idCategoria)
        {
            CategoriaRecurso categoria = CategoriaRecurso.Find(idCategoria);
            PropertyBag["Recursos"] = Recurso.buscaRecursosPorCategoria(categoria);
            //PropertyBag["Recursos"] = Recurso.getRecursos();
        }

        public void detalharRecurso(int idRecurso)
        {
            PropertyBag["id"] = idRecurso;
            PropertyBag["Recurso"] = Recurso.getRecurso(idRecurso);
            PropertyBag["Alocacoes"] = AlocacaoRecurso.getAlocacoes(idRecurso);
            PropertyBag["Reservas"] = ReservaRecurso.getReservas(idRecurso);
        }

        public void entrarRecurso() 
        {
            PropertyBag["teste"] = "teste";
        }

        public void comprarRecurso(int idRecurso) 
        {
            PropertyBag["idRecurso"] = idRecurso;
        }
        
        public void alocarRecurso(int idRecurso, int qtd) 
        {
            //PropertyBag["idRecurso"] = idRecurso;
            PropertyBag["recurso"] = Recurso.getRecurso(idRecurso);
            PropertyBag["colaboradores"] = ColaboradorRecurso.findColaborador("");
        }

        public  void alocar()
        {
            String[] p = new String[100];

            Hashtable hstParams = new Hashtable();           

            foreach (string key in Params.Keys)
            {          
                hstParams.Add(key, Params[key]);
            }
            int idRecurso = Convert.ToInt16(hstParams["idRecurso"]);

            
            

            WebReference.Service1 servico1 = new WebReference.Service1();
            servico1.alocarRetornavel(idRecurso, "04-10-2010", "04-10-2010");
      
            
            String[] param = new string[1];
            param[0] =  "idRecurso="+idRecurso ;
            RedirectToAction("detalharRecurso", param);           
        }

        public void desalocar(int idAlocacao, int idRecurso)
        {
            AlocacaoRecurso alocacao = AlocacaoRecurso.getAlocacao(idAlocacao);
            alocacao.Ativo = false;
            AlocacaoRecurso.Atualizar(alocacao);

            String[] param = new string[1];

            param[0] = "idRecurso=" + idRecurso;
            RedirectToAction("detalharRecurso", param);
        }


        public void reservarRecurso(int idRecurso) 
        {
            PropertyBag["recurso"] = Recurso.getRecurso(idRecurso);
            PropertyBag["colaboradores"] = ColaboradorRecurso.findColaborador("");

          
        }

        public void reservar(int idRecurso, int idColaborador, int qtd) 
        {
            ReservaRecurso rr = new ReservaRecurso();
            rr.Recurso = Recurso.getRecurso(idRecurso);
            rr.Colaborador = ColaboradorRecurso.getColaborador(idColaborador);
            rr.DtInicio = System.DateTime.Now;
            rr.DtFim = System.DateTime.Now;
            ReservaRecurso.Salvar(rr);


            String[] param = new string[1];
            param[0] = "idRecurso=" + idRecurso;
            RedirectToAction("detalhar", param);
        }



    }
}
